package gob.pe.mtpe.ibatis.implementacion;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import gob.pe.mtpe.bean.ListaBean;
import gob.pe.mtpe.ibatis.comun.BaseSqlMapDao;
import gob.pe.mtpe.ibatis.interfase.INTMasivo;
import gob.pe.mtpe.struts.form.MasivoForm;
import gob.pe.mtpe.struts.form.SeguroVidaForm;
import gob.pe.mtpe.util.funciones.Funciones;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import com.ibatis.dao.client.DaoException;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.sqlmap.client.SqlMapExecutor;


public class IMPMasivo extends BaseSqlMapDao implements INTMasivo {
	 private static Logger depurador = Logger.getLogger(IMPMasivo.class.getName());
	 private SqlMapExecutor sqlMapExecutor;
         private Funciones funciones;
	 
	public IMPMasivo(DaoManager arg0){ super(arg0); }	

	
	public String horaMasivo(MasivoForm frm) throws DaoException {
	    try {sqlMapExecutor  = getSqlMapExecutor();            
              return (String)sqlMapExecutor.queryForObject("horaMasivo", frm);
               } catch (SQLException e) {
                  funciones=new Funciones();                  
                  depurador.log(Level.ERROR,funciones.readStackTrace(e));
                  throw new DaoException("");
              }	
	}
	
	public List trabajadormasivoerror(ListaBean listaBean) throws DaoException {
		try {
			
        	System.out.println("PV_CODEMP==>"+listaBean.getV_codemp());
            System.out.println("PV_FECREG ====>"+listaBean.getD_fecreg());
            
            
        	SqlMapExecutor sqlMap = getSqlMapExecutor();
        	Map parametros = new HashMap();
            parametros.put("PV_CODEMP", listaBean.getV_codemp());	
            parametros.put("PV_FECREG", listaBean.getD_fecreg());
            
            
            List lista= sqlMap.queryForList("trabajadormasivoerror",parametros);
            System.out.println("LISTA TRABAJADOR ERROR MASIVO====>"+lista.size());
            Map m =null;
            List tenplist= new ArrayList();
            Iterator iterator = lista.iterator();
            while (iterator.hasNext()) {
              		m = new HashMap();
                    listaBean=(ListaBean)iterator.next();
                    m.put("V_CODEMP" ,listaBean.getV_codemp());
		            m.put("V_CODTRA" ,listaBean.getV_codtra());
		            m.put("V_CODTDOCIDE" ,listaBean.getV_codtdocide());
		            m.put("V_APEPATTRA" ,listaBean.getV_apepattra());
		            m.put("V_APEMATTRA" ,listaBean.getV_apemattra());
		            m.put("V_NOMTRA" ,listaBean.getV_nomtra());
		            m.put("V_GENTRA" ,listaBean.getV_genero());		            
		            m.put("D_FECNACTRA" ,listaBean.getD_fecnactra());
		            m.put("V_NOMARCHIVO" ,listaBean.getV_nomarchivo());
		            m.put("D_FECREG" ,listaBean.getD_fecreg());
		            m.put("V_OBSERVA" ,listaBean.getV_observa());	            
                                        
                    tenplist.add(m);                    
                }
           return tenplist;
         } catch (SQLException e) {
            funciones=new Funciones();
            depurador.log(Level.ERROR,funciones.readStackTrace(e));
            throw new DaoException("");
        }
	}

	
	public List beneficiariomasivoerror(ListaBean listaBean) throws DaoException {
		try {
			
        	System.out.println("PV_CODEMP==>"+listaBean.getV_codemp());
            System.out.println("PV_FECREG ====>"+listaBean.getD_fecreg());
            
            
        	SqlMapExecutor sqlMap = getSqlMapExecutor();
        	Map parametros = new HashMap();
            parametros.put("PV_CODEMP", listaBean.getV_codemp());	
            parametros.put("PV_FECREG", listaBean.getD_fecreg());
            
            
            List lista= sqlMap.queryForList("beneficiariomasivoerror",parametros);
            System.out.println("LISTA BENEFICIARIO ERROR MASIVO====>"+lista.size());
            Map m =null;
            List tenplist= new ArrayList();
            Iterator iterator = lista.iterator();
            while (iterator.hasNext()) {
              		m = new HashMap();
                    listaBean=(ListaBean)iterator.next();
                    m.put("V_CODEMPASE" ,listaBean.getV_codempase());
		            m.put("V_NUMPOL" ,listaBean.getV_numpol());
		            m.put("D_FECSUSPOL" ,listaBean.getD_fecsuspol());
		            m.put("V_CODTRA" ,listaBean.getV_codtra());
		            m.put("D_FECASETRA" ,listaBean.getD_fecasetra());
		            m.put("V_CODBEN" ,listaBean.getV_codben());
		            m.put("V_CODTDOCIDE" ,listaBean.getV_codtdocide());
		            m.put("V_APEPATBEN" ,listaBean.getV_apepatben());		            
		            m.put("V_APEMATBEN" ,listaBean.getV_apematben());
		            m.put("V_NOMBEN" ,listaBean.getV_nomben());
		            m.put("D_FECASEBEN" ,listaBean.getD_fecaseben());
		            m.put("V_GENBEN" ,listaBean.getV_genben());
		            m.put("D_FECNACBEN" ,listaBean.getD_fecnacben());		            
		            m.put("V_CODVINFAM" ,listaBean.getV_codvinfam());		            
		            m.put("D_FECREG" ,listaBean.getD_fecreg());
		            m.put("V_OBSERVA" ,listaBean.getV_observa());
		            m.put("V_NOMARCHIVO" ,listaBean.getV_nomarchivo());
		            m.put("V_NUMOPER" ,listaBean.getV_numoper());
                    tenplist.add(m);
                }
           return tenplist;
         } catch (SQLException e) {
            funciones=new Funciones();
            depurador.log(Level.ERROR,funciones.readStackTrace(e));
            throw new DaoException("");
        }
	}

	public List polizamasivoerror(ListaBean listaBean) throws DaoException {
		try {
			
        	System.out.println("PV_CODEMP==>"+listaBean.getV_codemp());
            System.out.println("PV_FECREG ====>"+listaBean.getD_fecreg());
            
            
        	SqlMapExecutor sqlMap = getSqlMapExecutor();
        	Map parametros = new HashMap();
            parametros.put("PV_CODEMP", listaBean.getV_codemp());	
            parametros.put("PV_FECREG", listaBean.getD_fecreg());
            
            
            List lista= sqlMap.queryForList("polizamasivoerror",parametros);
            System.out.println("LISTA POLIZA ERROR MASIVO====>"+lista.size());
            Map m =null;
            List tenplist= new ArrayList();
            Iterator iterator = lista.iterator();
            while (iterator.hasNext()) {
              		m = new HashMap();
                    listaBean=(ListaBean)iterator.next();
                    m.put("V_CODEMPASE" ,listaBean.getV_codempase());
		            m.put("V_NUMPOL" ,listaBean.getV_numpol());
		            m.put("D_FECSUSPOL" ,listaBean.getD_fecsuspol());
		            m.put("D_FECINIPOL" ,listaBean.getD_fecinipol());
		            m.put("D_FECFINPOL" ,listaBean.getD_fecfinpol());
		            m.put("V_CODTRA" ,listaBean.getV_codtra());
		            m.put("D_FECASETRA" ,listaBean.getD_fecasetra());
		            m.put("V_FLGREING" ,listaBean.getV_flgreing());		            
		            m.put("D_FECING" ,listaBean.getD_fecing());
		            m.put("V_CODTMON" ,listaBean.getV_codtmon());
		            m.put("N_MONREM" ,listaBean.getN_monrem());
		            m.put("V_FLGCONSEG" ,listaBean.getV_flgconseg());		            
		            m.put("D_FECREG" ,listaBean.getD_fecreg());
		            m.put("V_OBSERVA" ,listaBean.getV_observa());
		            m.put("V_NOMARCHIVO" ,listaBean.getV_nomarchivo());
		            m.put("V_NUMOPER" ,listaBean.getV_numoper());
		            //System.out.println(m.values());
                    tenplist.add(m);
                }
           return tenplist;
         } catch (SQLException e) {
            funciones=new Funciones();
            depurador.log(Level.ERROR,funciones.readStackTrace(e));
            throw new DaoException("");
        }
	}

	public List obtSeguro(MasivoForm frm) throws DaoException {
        try{ List lista = null;
             sqlMapExecutor  = getSqlMapExecutor();
             Map parametros = new HashMap();
             parametros.put("p_V_CODEMP", frm.getV_ruc());
             parametros.put("p_V_CODEMPASE", frm.getV_ruc_ase());             
             parametros.put("p_V_NUMPOL", frm.getV_numpol());
             
             depurador.info("p_V_CODEMP "+frm.getV_ruc());
             depurador.info("p_V_CODEMPASE "+frm.getV_ruc_ase());
             depurador.info("p_V_NUMPOL "+frm.getV_numpol());
             lista = sqlMapExecutor.queryForList("reenvio",parametros);
             depurador.info("TAMANO DE LISTA->"+lista.size());
             return lista;		
             
        }catch(SQLException e){
        	 funciones=new Funciones();            
             depurador.log(Level.ERROR,"p_V_CODEMP="+frm.getV_ruc()+"  p_V_CODEMPASE="+frm.getV_ruc_ase()+" p_V_NUMPOL="+frm.getV_numpol());
             depurador.log(Level.ERROR,funciones.readStackTrace(e));
            throw new DaoException("");
        }     
        
    }

	
	
}
